X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/63a61ee2be3a902c27cd000d41b1a3a0280be21a..f8aec187ea7dc410a32996406109f290f3199ffa:/Super%20Polarity/MainShip.cs diff --git a/Super Polarity/MainShip.cs b/Super Polarity/MainShip.cs index 51d1eb3..92ccab7 100644 --- a/Super Polarity/MainShip.cs +++ b/Super Polarity/MainShip.cs @@ -3,47 +3,64 @@ using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; namespace SuperPolarity { - class MainShip + class MainShip : Ship { - public Texture2D PlayerTexture; - public Vector2 Position; - public bool Active; - public int Lives; - public int Multiplier; - public int Score; - public float Angle; - - public int Width + + uint Multiplier; + uint Lives; + uint Score; + ParticleEngine particleEngine; + + public override void Initialize(ContentManager Content, Texture2D texture, Vector2 position) + { + base.Initialize(Content, texture, position); + + Multiplier = 1; + Lives = 3; + Score = 0; + + List texturesList = new List(); + texturesList.Add(Content.Load("Graphics\\circle")); + texturesList.Add(Content.Load("Graphics\\diamond")); + texturesList.Add(Content.Load("Graphics\\star")); + + particleEngine = new ParticleEngine(texturesList, Position); + + BindInput(); + } + + void BindInput() { - get { return PlayerTexture.Width; } + InputController.Bind("moveX", HandleHorizontalMovement); + InputController.Bind("moveY", HandleVerticalMovement); } - public int Height + public void HandleHorizontalMovement(float value) { - get { return PlayerTexture.Height; } + Acceleration.X = value * AccelerationRate; } - public void Initialize(Texture2D texture, Vector2 position) + public void HandleVerticalMovement(float value) { - PlayerTexture = texture; - Position = position; - Active = true; - Multiplier = 1; - Lives = 3; - Score = 0; + Acceleration.Y = value * AccelerationRate; } - public void Update() + public override void Update(GameTime gameTime) { + base.Update(gameTime); + particleEngine.EmitterLocation = Position; + particleEngine.Update(); } - public void Draw(SpriteBatch spriteBatch) + public override void Draw(SpriteBatch spriteBatch) { - spriteBatch.Draw(PlayerTexture, Position, null, Color.White, Angle, Vector2.Zero, 1f, SpriteEffects.None, 0f); + particleEngine.Draw(spriteBatch); + base.Draw(spriteBatch); } } }